/**
 * 反射api Reflect.get()
 * 
 * 1.返回值
 * 无限制
 * 
 * 2.触发拦截操作
 * proxy.foo
 * proxy['foo']
 * Object.create(proxy)['foo']
 * Reflect.get(proxy,'foo')
 * 
 * 3.不变式
 *  如果目标对象有属性不可写且不可配置，
 * get返回于属性不同值是报错（TypeError）
 * 
 */

const myTarget = {}

const proxy = new Proxy(myTarget,{
    /**
     * 
     * @param {*} target 目标对象
     * @param {*} property 目标对象的属性
     * @param {*} receiver 代理对象
     * @returns 
     */
    get(target,property,receiver){
        console.log('get()');
        return Reflect.get(...arguments);
    }
})

proxy.foo//get()
proxy['foo']//get()
Object.create(proxy)['foo']//get()
Reflect.get(proxy,'foo')//get()
